package cn.com.anypay.manager.dto.wechat;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 微信用户信息数据模型
 * 用于存储从微信开放平台获取的用户信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WeChatUserInfo {
    
    /**
     * 微信OpenID - 用户在当前应用的唯一标识
     */
    private String openId;
    
    /**
     * 微信UnionID - 用户在开发者账号下的唯一标识（可选）
     */
    private String unionId;
    
    /**
     * 微信昵称
     */
    private String nickname;
    
    /**
     * 头像URL
     */
    private String headImgUrl;
    
    /**
     * 性别：1-男，2-女，0-未知
     */
    private Integer sex;
    
    /**
     * 国家
     */
    private String country;
    
    /**
     * 省份
     */
    private String province;
    
    /**
     * 城市
     */
    private String city;
    
    /**
     * 语言
     */
    private String language;
    
    /**
     * 用户特权信息
     */
    private List<String> privilege;
    
    /**
     * 获取性别描述
     */
    public String getSexDesc() {
        if (sex == null) {
            return "未知";
        }
        switch (sex) {
            case 1:
                return "男";
            case 2:
                return "女";
            default:
                return "未知";
        }
    }
    
    /**
     * 检查是否有有效的用户信息
     */
    public boolean isValid() {
        return openId != null && !openId.trim().isEmpty();
    }
}